#!/bin/bash
# 首先判断输入参数个数是否为1 $#:变量存储参数总数
if [ $# -ne 1 ]; then
    echo "参数个数错误！应该输入一个参数，作为归档目录名"
    exit
fi

# 从参数中获取目录名称 -d测试运算符直接判断路径类型
if [ -d $1 ]; then
    echo
else
    echo
    echo "目录不存在！"
    echo
    exit
fi

# basename $1：提取目录的纯名称（如输入/home/user/docs，得到docs）
# dirname $1结合cd和pwd：获取目录的绝对路径（避免相对路径问题）
DIR_NAME=$(basename $1)
DIR_PATH=$(
    cd $(dirname $1)
    pwd
)

# 获取当前日期
DATE=$(date +%y%m%d)

#定义生成的归档文件名称
FILE=archive_${DIR_NAME}_$DATE.tar.gz
# 最终归档文件命名为archive_目录名_日期.tar.gz，存储在/home/cjb/code/shell-programming/archive/目录下。例如：
DEST=/home/cjb/code/shell-programming/archive/$FILE

#开始归档目录文件
echo "开始归档..."
echo

# tar命令参数解析
# tar -czf $DEST $DIR_PATH/$DIR_NAME：

# -c：创建新归档
# -z：使用gzip压缩
# -f：指定输出文件名
# 参数组合含义：创建gzip压缩的归档文件


tar -czf $DEST $DIR_PATH/$DIR_NAME

if [ $? -eq 0 ]; then
    echo
    echo "归档成功！"
    echo "归档文件为：$DEST"
    echo
else
    echo"归档文件出现问题！"
    echo
fi
exit
